#!/bin/bash
set -xe  # 启用调试模式，出错时退出

# -------------------------- 配置参数（根据需要修改） --------------------------
PACKAGE_NAME="qt-examples"       # Debian 包名（小写，无空格）
VERSION="1.0.0"                  # 版本号
ARCH="amd64"                     # 架构（x86_64 对应 amd64）
MAINTAINER="Your Name <your-email@example.com>"  # 维护者信息（必填）
DESCRIPTION="Qt 示例程序：基础窗口（main）和通知功能（main2）"
DEPENDS="libqt6widgets6 (>= 6.0.0), libnotify4 (>= 0.7.0), libglib2.0-0 (>= 2.64.0)"  # 依赖库

# 编译输出目录
BUILD_DIR="./build"
# Debian 包临时构建目录（模拟系统根目录）
DEB_ROOT="${BUILD_DIR}/deb_root"


# -------------------------- 1. 清理旧文件 --------------------------
rm -rf "${BUILD_DIR}"
mkdir -p "${BUILD_DIR}"  # 创建编译目录
mkdir -p "${DEB_ROOT}"   # 创建 Debian 包根目录


# -------------------------- 2. 编译程序（使用你的编译命令） --------------------------
# 编译 main
g++ main.cc -o "${BUILD_DIR}/main" \
  -I /usr/include/x86_64-linux-gnu/qt6/ \
  -L /lib/x86_64-linux-gnu/ \
  -l Qt6Widgets -l Qt6Core

# 编译 main2
g++ main2.cc -o "${BUILD_DIR}/main2" \
  -I /usr/include/x86_64-linux-gnu/qt6/ \
  -L /lib/x86_64-linux-gnu/ \
  -l Qt6Widgets -l Qt6Core \
  -I/usr/include/gdk-pixbuf-2.0 \
  -I/usr/include/glib-2.0 \
  -I/usr/lib/x86_64-linux-gnu/glib-2.0/include \
  -I/usr/include/libpng16 \
  -I/usr/include/x86_64-linux-gnu \
  -I/usr/include/libmount \
  -I/usr/include/blkid \
  -pthread -lnotify -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0


# -------------------------- 3. 创建 Debian 包目录结构 --------------------------
# 创建标准系统目录（模拟 /usr/bin、/DEBIAN 等）
mkdir -p "${DEB_ROOT}/usr/bin"          # 存放可执行文件
mkdir -p "${DEB_ROOT}/DEBIAN"           # 存放控制文件


# -------------------------- 4. 复制程序文件到包目录 --------------------------
# 复制编译好的可执行文件到 /usr/bin（Debian 标准二进制路径）
cp "${BUILD_DIR}/main" "${DEB_ROOT}/usr/bin/"
cp "${BUILD_DIR}/main2" "${DEB_ROOT}/usr/bin/"

# 设置可执行权限
chmod 755 "${DEB_ROOT}/usr/bin/main"
chmod 755 "${DEB_ROOT}/usr/bin/main2"


# -------------------------- 5. 创建 Debian 控制文件（关键） --------------------------
# 控制文件（control）包含包的元信息，必须存在
cat > "${DEB_ROOT}/DEBIAN/control" << EOF
Package: ${PACKAGE_NAME}
Version: ${VERSION}
Architecture: ${ARCH}
Maintainer: ${MAINTAINER}
Description: ${DESCRIPTION}
Depends: ${DEPENDS}
Section: utils
Priority: optional
EOF

# 设置控制文件权限（必须为 644，否则 dpkg-deb 会报错）
chmod 644 "${DEB_ROOT}/DEBIAN/control"


# -------------------------- 6. 打包成 .deb 文件 --------------------------
# 使用 dpkg-deb 打包（-b 表示构建，-Zgzip 压缩）
dpkg-deb -b -Zgzip "${DEB_ROOT}" "${BUILD_DIR}/${PACKAGE_NAME}_${VERSION}_${ARCH}.deb"

echo "打包完成！生成的 Debian 包：${BUILD_DIR}/${PACKAGE_NAME}_${VERSION}_${ARCH}.deb"